<?php
namespace app\admin\controller;

use controller\BasicAdmin;
use service\DataService;
use think\Db;

/**
 * 前台授权证书列表控制器
 *
 * @author leo.lei(346991581@qq.com)
 */
class Authorize extends BasicAdmin
{

    /**
     * 指定当前数据表
     * @var string
     */
    public $table = 'YogaAuth';

    /**
     * 列表
     */
    public function index()
    {
        // 设置页面标题
        $this->title = '证书列表';
        // 实例Query对象
        $db = Db::name($this->table)->where('is_deleted', '0');
        // 获取到所有GET参数
        $get = $this->request->get();
        // 应用搜索条件
        foreach (['auth_sn', 'name','idcard'] as $key) {
            if (isset($get[$key]) && $get[$key] !== '') {
                $db->where($key, 'like', "%{$get[$key]}%");
            }
        }
        // 实例化并显示
        return parent::_list($db);
    }

    /**
     * 添加
     */
    public function add()
    {
        return $this->_form($this->table, 'form');
    }

    /**
     * 编辑
     */
    public function edit()
    {
        return $this->_form($this->table, 'form');
    }

    /**
     * 表单数据前缀方法
     * @param array $vo
     */
    protected function _form_filter(&$data)
    {
        if ($this->request->isPost()) {
            if (empty($data['auth_sn'])) {
                $data['create_time'] = NOW_TIME;
            }
            $data['update_time'] = NOW_TIME;
        }
    }

    /**
     * 删除
     */
    public function del()
    {
        if (DataService::update($this->table)) {
            $this->success("删除成功！", '');
        }
        $this->error("删除失败，请稍候再试！");
    }

    /**
     * 禁用
     */
    public function forbid()
    {
        if (DataService::update($this->table)) {
            $this->success("隐藏成功！", '');
        }
        $this->error("隐藏失败，请稍候再试！");
    }

    /**
     * 启用
     */
    public function resume()
    {
        if (DataService::update($this->table)) {
            $this->success("启用成功！", '');
        }
        $this->error("启用失败，请稍候再试！");
    }
    
    /**
     * 生成授权编号
     *
     * @param integer $type
     * @return void
     * @author leo.lei(346991581@qq.com)
     */
    // protected function build_sn($type = 0)
    // {
    //     if ($type == 1) {
    //         $sn = 'S';
    //     } else {
    //         $sn = 'G';
    //     }
    //     return $sn.date('Ymd') . substr(implode(null, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
    // }
}
